﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MemoryDuosControl;

namespace MemoryDuosInterfaz
{
    public partial class EmpresasPublicitarias : Form
    {
        private List<Empresa> _empresas = null;
        private BindingList<Empresa> listaEmpresas = null;

        public EmpresasPublicitarias()
        {
            InitializeComponent();
            _empresas = AccesoEmpresa.ObtenerEmpresas();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            RegistroEmpresa registro = new RegistroEmpresa();
            registro.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var lista = dataGridEmpresas.CurrentRow;
            var indice = -1;
            if (lista != null)
                indice = lista.Index;
            if (indice > -1)
            {
                RegistroEmpresa registro = new RegistroEmpresa(_empresas.ElementAt(indice));
                registro.Show();
            }
        }

        private void buttonBaja_Click(object sender, EventArgs e)
        {
            var lista = dataGridEmpresas.CurrentRow;
            var indice = -1;
            if (lista != null)
                indice = lista.Index;
            if (indice > -1)
            {
                DialogResult resultado = MessageBox.Show("Estás seguro de que quieres eliminar la empresa? Tiene anuncios asociados.", "MemoryDuos", MessageBoxButtons.YesNo);
                if (resultado == DialogResult.Yes)
                {
                    var estado = AccesoEmpresa.EliminarEmpresa(_empresas.ElementAt(indice).CIF);
                    if (estado.Estado)
                    {
                        ActualizarEmpresas();
                    }
                }
            }
        }

        private void EmpresasPublicitarias_Load(object sender, EventArgs e)
        {
            ActualizarEmpresas();
        }

        private void ActualizarEmpresas()
        {
            _empresas = AccesoEmpresa.ObtenerEmpresas();
            dataGridEmpresas.Rows.Clear();

            listaEmpresas = new BindingList<Empresa>(_empresas);
            dataGridEmpresas.DataSource = listaEmpresas;
        }

        private void EmpresasPublicitarias_Activated(object sender, EventArgs e)
        {
            ActualizarEmpresas();
        }
    }
}
